﻿using Renci.Data.Interop.Noaa.Ioos_061;
using Renci.Data.Interop.OpenGIS.Om_101;
using Renci.Data.Interop.OpenGIS.Swe_102;
namespace Renci.Data.Interop.OpenGIS.Gml_32
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "ArrayAssociationType", Namespace = "http://www.opengis.net/gml/3.2")]
    [System.Xml.Serialization.XmlRootAttribute("members", Namespace = "http://www.opengis.net/gml/3.2", IsNullable = false)]
    public class ArrayAssociationType : IOwnershipAttributeGroup
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ArrayAssociationType"/> class.
        /// </summary>
        public ArrayAssociationType()
        {
            this.Owns = false;
        }

        private System.Collections.ObjectModel.Collection<object> _abstractObject = new System.Collections.ObjectModel.Collection<object>();
        /// <remarks/>
        //[System.Xml.Serialization.XmlElementAttribute("AbstractObject")]
        [System.Xml.Serialization.XmlElementAttribute("ParameterValue", Type = typeof(ParameterValueType))]
        [System.Xml.Serialization.XmlElementAttribute("ParameterValueGroup", Type = typeof(ParameterValueGroupType))]
        [System.Xml.Serialization.XmlElementAttribute("DataBlock", Type = typeof(DataBlockType))]
        [System.Xml.Serialization.XmlElementAttribute("File", Type = typeof(FileType))]
        [System.Xml.Serialization.XmlElementAttribute("coverageFunction", Type = typeof(CoverageFunctionType))]
        [System.Xml.Serialization.XmlElementAttribute("CoverageMappingRule", Type = typeof(MappingRuleType))]
        [System.Xml.Serialization.XmlElementAttribute("GridFunction", Type = typeof(GridFunctionType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractMetaData", Type = typeof(AbstractMetaDataType))]
        [System.Xml.Serialization.XmlElementAttribute("GenericMetaData", Type = typeof(GenericMetaDataType))]
        [System.Xml.Serialization.XmlElementAttribute("srsName", Type = typeof(CodeType))]
        [System.Xml.Serialization.XmlElementAttribute("supportedSensorDescription", Type = typeof(System.Xml.XmlQualifiedName))]
        [System.Xml.Serialization.XmlElementAttribute("Envelope", Type = typeof(EnvelopeType))]
        [System.Xml.Serialization.XmlElementAttribute("LinearRing", Type = typeof(LinearRingType))]
        [System.Xml.Serialization.XmlElementAttribute("Ring", Type = typeof(RingType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractCurveSegment", Type = typeof(AbstractCurveSegmentType))]
        [System.Xml.Serialization.XmlElementAttribute("LineStringSegment", Type = typeof(LineStringSegmentType))]
        [System.Xml.Serialization.XmlElementAttribute("ArcString", Type = typeof(ArcStringType))]
        [System.Xml.Serialization.XmlElementAttribute("ArcStringByBulge", Type = typeof(ArcStringByBulgeType))]
        [System.Xml.Serialization.XmlElementAttribute("ArcByCenterPoint", Type = typeof(ArcByCenterPointType))]
        [System.Xml.Serialization.XmlElementAttribute("CubicSpline", Type = typeof(CubicSplineType))]
        [System.Xml.Serialization.XmlElementAttribute("BSpline", Type = typeof(BSplineType))]
        [System.Xml.Serialization.XmlElementAttribute("OffsetCurve", Type = typeof(OffsetCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("Clothoid", Type = typeof(ClothoidType))]
        [System.Xml.Serialization.XmlElementAttribute("GeodesicString", Type = typeof(GeodesicStringType))]
        [System.Xml.Serialization.XmlElementAttribute("AffinePlacement", Type = typeof(AffinePlacementType))]
        [System.Xml.Serialization.XmlElementAttribute("Shell", Type = typeof(ShellType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGML", Type = typeof(AbstractGMLType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractStyle", Type = typeof(AbstractStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("Style", Type = typeof(StyleType))]
        [System.Xml.Serialization.XmlElementAttribute("FeatureStyle", Type = typeof(FeatureStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("GeometryStyle", Type = typeof(GeometryStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("TopologyStyle", Type = typeof(TopologyStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("LabelStyle", Type = typeof(LabelStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("GraphStyle", Type = typeof(GraphStyleType))]
        [System.Xml.Serialization.XmlElementAttribute("Bag", Type = typeof(BagType))]
        [System.Xml.Serialization.XmlElementAttribute("Array", Type = typeof(ArrayType))]
        [System.Xml.Serialization.XmlElementAttribute("Definition", Type = typeof(DefinitionType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeSlice", Type = typeof(AbstractTimeSliceType))]
        [System.Xml.Serialization.XmlElementAttribute("MovingObjectStatus", Type = typeof(MovingObjectStatusType))]
        [System.Xml.Serialization.XmlElementAttribute("WaterBodyFeature", typeof(WaterBodyFeatureType), Namespace = "http://www.noaa.gov/ioos/0.6.1")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractCoverage", typeof(AbstractCoverageType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractDiscreteCoverage", typeof(DiscreteCoverageType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("MultiPointCoverage", Type = typeof(MultiPointCoverageType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurveCoverage", Type = typeof(MultiCurveCoverageType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurfaceCoverage", Type = typeof(MultiSurfaceCoverageType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolidCoverage", Type = typeof(MultiSolidCoverageType))]
        [System.Xml.Serialization.XmlElementAttribute("GridCoverage", Type = typeof(GridCoverageType))]
        [System.Xml.Serialization.XmlElementAttribute("RectifiedGridCoverage", Type = typeof(RectifiedGridCoverageType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractContinuousCoverage", typeof(AbstractContinuousCoverageType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractFeatureCollection", typeof(AbstractFeatureCollectionType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("FeatureCollection", typeof(FeatureCollectionType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("DynamicFeature", typeof(DynamicFeatureType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Observation", typeof(ObservationType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Observation", typeof(Om_101.ObservationType), Namespace = "http://www.opengis.net/om/1.0")]
        [System.Xml.Serialization.XmlElementAttribute("ObservationCollection", typeof(ObservationCollectionType), Namespace = "http://www.opengis.net/om/1.0")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractFeature")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometry", Type = typeof(AbstractGeometryType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricAggregate", Type = typeof(AbstractGeometricAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiGeometry", Type = typeof(MultiGeometryType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiPoint", Type = typeof(MultiPointType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurve", Type = typeof(MultiCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurface", Type = typeof(MultiSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolid", Type = typeof(MultiSolidType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractGeometricPrimitive", Type = typeof(AbstractGeometricPrimitiveType))]
        [System.Xml.Serialization.XmlElementAttribute("Point", Type = typeof(PointType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractCurve", Type = typeof(AbstractCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("LineString", Type = typeof(LineStringType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeCurve", Type = typeof(CompositeCurveType))]
        [System.Xml.Serialization.XmlElementAttribute("Curve", Type = typeof(CurveType))]
        [System.Xml.Serialization.XmlElementAttribute("OrientableCurve", Type = typeof(OrientableCurveType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSurface", Type = typeof(AbstractSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType))]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractSolid", Type = typeof(AbstractSolidType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSolid", Type = typeof(CompositeSolidType))]
        [System.Xml.Serialization.XmlElementAttribute("Solid", Type = typeof(SolidType))]
        [System.Xml.Serialization.XmlElementAttribute("GeometricComplex", Type = typeof(GeometricComplexType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractImplicitGeometry", Type = typeof(AbstractGeometryType))]
        [System.Xml.Serialization.XmlElementAttribute("Grid", Type = typeof(GridType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeObject", Type = typeof(AbstractTimeObjectType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimePrimitive", Type = typeof(AbstractTimePrimitiveType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeGeometricPrimitive", Type = typeof(AbstractTimeGeometricPrimitiveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeInstant", Type = typeof(TimeInstantType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimePeriod", Type = typeof(TimePeriodType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeTopologyPrimitive", Type = typeof(AbstractTimeTopologyPrimitiveType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeNode", Type = typeof(TimeNodeType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeEdge", Type = typeof(TimeEdgeType), Namespace = "http://www.opengis.net/gml/3.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTimeComplex", Type = typeof(AbstractTimeComplexType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeTopologyComplex", Type = typeof(TimeTopologyComplexType))]
        [System.Xml.Serialization.XmlElementAttribute("TimeGeometricComplex", Type = typeof(TimeGeometricComplexType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeGrid", Type = typeof(TimeGridType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        [System.Xml.Serialization.XmlElementAttribute("TimeAggregate", Type = typeof(TimeAggregateType), Namespace = "http://www.opengis.net/swe/1.0.2")]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTopology", Type = typeof(AbstractTopologyType))]
        //[System.Xml.Serialization.XmlElementAttribute("AbstractTopoPrimitive", Type = typeof(AbstractTopoPrimitiveType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Node", Type = typeof(NodeType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Edge", Type = typeof(EdgeType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("Face", Type = typeof(FaceType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TopoSolid", Type = typeof(TopoSolidType), Namespace = "http://www.opengis.net/gml/3.2")]
        [System.Xml.Serialization.XmlElementAttribute("TopoComplex", Type = typeof(TopoComplexType))]
        //<element name="AbstractValue" type="anyType" abstract="true" substitutionGroup="gml:AbstractObject">
        public System.Collections.ObjectModel.Collection<object> Object { get { return this._abstractObject; } }

        #region IOwnershipAttributeGroup Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("owns", Namespace = "http://www.opengis.net/gml/3.2")]
        [System.ComponentModel.DefaultValueAttribute(false)]
        public bool Owns { get; set; }

        #endregion
    }
}
